其他
【302期】面试官:幂等性的接口该如何设计?
幂等性设计
为什么接口需要幂等呢?
创建订单时,需要减库存,如果减库存接口超时了,调用方重新调用一次(无论是否成功的执行了减库存代码),应该要保证不会多减一次库存。
接口提供方需要提供相应的查询接口。调用方在超时后去查询一下是否成功。是否多扣一次库存掌握在调用方手里。如果接口是提供给第三方使用的,就会存在一定的风险。 接口支持幂等。这样幂等的保证完全掌握在提供方自己手里,完全不用担心。
全局ID
1.可以创建一个分配中心,由中心统一分配。
2.集成在业务服务集群。
递增,起码保证每台机器上的ID递增。(保证数据库性能) 明确的规则,ID的各个位都有具体的定义。(方便追溯)
UUID
Snowflake
1bit:固定为0,二进制中最高位为符号位,0为整数,1位负数。所以固定为0表示生成的ID都为正数 41bit:作为毫秒数,大约能用69年。 10bit:作为机器编号(5bit是数据中心ID,5bit为机器ID)。支持1204个实例。 12bit:序列号,一毫秒最多生成2^12=4096个。
业务逻辑
HTTP的幂等性
小结
感谢阅读,希望对你有所帮助 :)
来源:blog.csdn.net/qq_36011946/article/details/104200262
END
题外推荐
十期推荐
与其在网上拼命找题? 不如马上关注我们~